﻿<?xml version="1.0" encoding="utf-8"?>

<!--
/********************************************************
 * ADO.NET 2.0 Data Provider for SQLite Version 3.X
 * Written by Robert Simpson (robert@blackcastlesoft.com)
 * 
 * Released to the public domain, use at your own risk!
 ********************************************************/
-->

<VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
  <Types>
    <RootType>
      <Properties>
        <Property name="Server" type="System.String" itemName="DataSource"/>
        <Property name="Database" type="System.String" itemName="Database"/>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetRootObjectEnumerator"/>
      </Actions>
    </RootType>

    <Type name="Table" defaultSort="Schema,Name">
      <Concepts>
        <Concept name="Table" restrictions="{Catalog},{Schema},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="table_name"/>        
        <Property name="Schema" type="System.String" itemName="table_schem"/>
        <Property name="Catalog" type="System.String" itemName="table_cat"/>
        <Property name="StorageType" type="System.String" itemName="hsqldb_type"/>
        <Property name="Type" type="System.String" itemName="table_type">
        <Concepts>
            <Concept name="Type">
              <Conversion>
                <Calculate expr="IIF({0}='TABLE','USER','SYSTEM')" type="System.String"/>
              </Conversion>
            </Concept> 
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Tables"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="Table"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="101" type="System.Int32"/>
                <!-- Table -->
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <Type name="TableColumn" defaultSort="Schema,Table,Ordinal">
      <Concepts>
        <Concept name="TableColumn" restrictions="{Catalog},{Schema},{Table},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="column_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="column_name"/>
        <Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          <Concepts>
            <Concept name="Ordinal">
            </Concept>
          </Concepts>
        </Property>
        <Property name="DataType" type="System.String" itemName="type_name" />
        <Property name="SystemType" type="System.String" itemName="type_name">
          <Concepts>
            <Concept name="UserDataType"/>
            <Concept name="NativeDataType"/>
            <Concept name="ProviderDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="ProviderDbType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="FrameworkDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
          </Concepts>
        </Property>
        <Property name="Length" type="System.Int32" itemName='column_size'>
          <Concepts>
            <Concept name="Length"/>
          </Concepts>
        </Property>
        <Property name="Precision" type="System.Int32" itemName="column_size">
          <Concepts>
            <Concept name="Precision">
            </Concept>
          </Concepts>
        </Property>
        <Property name="Scale" type="System.Int32" itemName="decimal_digits">
          <Concepts>
            <Concept name="Scale"/>
          </Concepts>
        </Property>
        <Property name="IsNullable" type="System.Boolean" itemName="is_nullable">
          <Concepts>
            <Concept name="Nullable" />
              <!--<Conversion>
                <Calculate expr="IIF({0}='No',false,true)" type="System.Boolean"/>
              </Conversion>
            </Concept>-->
          </Concepts>
        </Property>
        <Property name="Default" type="System.String" itemName="column_def">
          <Concepts>
            <Concept name="Default"/>
          </Concepts>
        </Property>
        <Property name="InPrimaryKey" type="System.Boolean" itemName="is_primary_key"/>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Columns"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="Table"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="101" type="System.Int32"/>
                <!-- Table -->
              </Parameter>
            </Parameter>
            <Parameter>
              <Parameter>
                <Parameter value="{3}"/>
                <Parameter/>
                <Parameter value="Field"/>
                <Parameter/>
                <Parameter>
                  <!-- GUID_DSRefProperty_PreciseType -->
                  <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                    <Parameter value="102" type="System.Int32"/>
                    <!-- Table_Column -->
                  </Parameter>
                </Parameter>
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <Type name="View" defaultSort="Schema,Name">
      <Concepts>
        <Concept name="View" restrictions="{catalog},{Schema},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_catalog">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schema">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="table_name"/>
        <Property name="Schema" type="System.String" itemName="table_schema">
          <Concepts>
            <Concept name="Schema"/>
          </Concepts>
        </Property>
        <Property name="Check_Option" type="System.String" itemName="check_option">
          <Concepts>
            <Concept name="CheckOption">
              <Conversion>
                <Calculate expr="IIF({0}='NONE',false,true)" type="System.Boolean"/>
              </Conversion>
            </Concept>
          </Concepts>
        </Property>
        <Property name="Is_Updatable" type="System.String" itemName="is_updatable">
        <Concepts>
          <Concept name="IsUpdatable">
            <Conversion>
              <Calculate expr="IIF({0}='YES',true,false)" type="System.Boolean"/>
            </Conversion>
          </Concept>
        </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Views"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="View"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="301" type="System.Int32"/>
                <!-- View -->
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <!--
			Defines a type that represents a view column.
		-->
    <Type name="ViewColumn" defaultSort="Schema,View,Ordinal">
      <Concepts>
        <Concept name="ViewColumn" restrictions="{catalog},{Schema},{View},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="View" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="column_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="column_name"/>
        <Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          <Concepts>
            <Concept name="Ordinal">
            </Concept>
          </Concepts>
        </Property>
        <Property name="DataType" type="System.String" itemName="type_name" />
        <Property name="SystemType" type="System.String" itemName="type_name">
          <Concepts>
            <Concept name="UserDataType"/>
            <Concept name="NativeDataType"/>
            <Concept name="ProviderDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="ProviderDbType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="FrameworkDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
          </Concepts>
        </Property>
        <Property name="Length" type="System.Int32" itemName='column_size'>
          <Concepts>
            <Concept name="Length"/>
          </Concepts>
        </Property>
        <Property name="Precision" type="System.Int32" itemName="column_size">
          <Concepts>
            <Concept name="Precision">
            </Concept>
          </Concepts>
        </Property>
        <Property name="Scale" type="System.Int32" itemName="decimal_digits">
          <Concepts>
            <Concept name="Scale"/>
          </Concepts>
        </Property>
        <Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          <Concepts>
            <Concept name="Nullable">
            </Concept>
          </Concepts>
        </Property>
        <Property name="Default" type="System.String" itemName="column_def">
          <Concepts>
            <Concept name="Default"/>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Columns"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="View"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="301" type="System.Int32"/>
                <!-- View -->
              </Parameter>
            </Parameter>
            <Parameter>
              <Parameter>
                <Parameter value="{3}"/>
                <Parameter/>
                <Parameter value="Field"/>
                <Parameter/>
                <Parameter>
                  <!-- GUID_DSRefProperty_PreciseType -->
                  <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                    <Parameter value="302" type="System.Int32"/>
                    <!-- View_Column -->
                  </Parameter>
                </Parameter>
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>
    <!--
			Defines a type that represents an index.
		-->
    <Type name="Index" defaultSort="Schema,Table,Name">
      <Concepts>
        <Concept name="TableUniqueKey" restrictions="{Catalog},{Schema},{Table},{Name}"  filter="IsUnique = true"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="index_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="index_name"/>
        <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
          <Concepts>
            <Concept name="IsUnique">
              <!--<Conversion>
                <Calculate expr="IIF({0}=true,false,true)" type="System.Boolean"/>
              </Conversion>-->
            </Concept>
          </Concepts>
        </Property>
        <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
          <Concepts>
            <Concept name="IsPrimary"/>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Indexes"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="Table"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_Qualifier -->
              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
                <Parameter value="{0}"/>
              </Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="101" type="System.Int32"/>
                <!-- Table -->
              </Parameter>
            </Parameter>
            <Parameter>
              <Parameter>
                <Parameter value="{3}"/>
                <Parameter/>
                <Parameter value="Index"/>
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <Type name="IndexColumn" defaultSort="Schema,Table,Index,Ordinal">
      <Concepts>
        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},{Schema},{Table},{TableUniqueKey},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Index" itemName="index_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="column_name">
          <Concepts>
            <Concept name="Identifier4"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="column_name"/>
        <Property name="Ordinal" type="System.Byte" itemName="ordinal_position">
          <Concepts>
            <Concept name="Ordinal">
              <Conversion>
                <ChangeType type="System.Int32"/>
              </Conversion>
            </Concept>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="IndexColumns"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="Table"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_Qualifier -->
              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
                <Parameter value="{0}"/>
              </Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="101" type="System.Int32"/>
                <!-- Table -->
              </Parameter>
            </Parameter>
            <Parameter>
              <Parameter>
                <Parameter value="{3}"/>
                <Parameter/>
                <Parameter value="Index"/>
                <Parameter/>
                <Parameter/>
                <Parameter>
                  <Parameter>
                    <Parameter value="{4}"/>
                    <Parameter/>
                    <Parameter value="Field"/>
                  </Parameter>
                </Parameter>
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <Type name="StoredProcedure" defaultSort="Schema, Name">
      <Concepts>
        <Concept name="StoredProcedure" restrictions="{Catalog},{Schema},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="PROCEDURE_CAT">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="PROCEDURE_SCHEM">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="PROCEDURE_NAME">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="PROCEDURE_NAME"/>     
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Procedures"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="StoredProcedure"/>
            <Parameter/>
            <Parameter>
              <!-- GUID_DSRefProperty_PreciseType -->
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="401" type="System.Int32"/>
                <!-- Procedure -->
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>

    <Type name="StoredProcedureColumn" defaultSort="Schema, StoredProcedure, Ordinal">
      <Concepts>
        <Concept name="StoredProcedureColumn" restrictions="{Catalog},{Schema},{StoredProcedure},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="PROCEDURE_CAT">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="PROCEDURE_SCHEM">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="StoredProcedure" itemName="PROCEDURE_NAME">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="COLUMN_NAME">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="COLUMN_NAME"/>
        <Property name="Ordinal" type="System.Int32" itemName="ORDINAL_POSITION">
          <Concepts>
            <Concept name="Ordinal" />
          </Concepts>
        </Property>
        <Property name="SystemType" type="System.String" itemName="TYPE_NAME">
          <Concepts>
            <Concept name="ProviderDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="ProviderDbType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="FrameworkDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
          </Concepts>
        </Property>
        <Property name="Length" type="System.Int32" itemName="LENGTH">
          <Concepts>
            <Concept name="Length"/>
          </Concepts>
        </Property>
        <Property name="Precision" type="System.Int32" itemName="PRECISION">
          <Concepts>
            <Concept name="Precision" />
          </Concepts>
        </Property>
        <Property name="Scale" type="System.Int32" itemName="SCALE">
          <Concepts>
            <Concept name="Scale"/>
          </Concepts>
        </Property>
        <Property name="Direction" type="System.Int32" itemName="COLUMN_TYPE">
          <Concepts>
            <Concept name="Direction" />
          </Concepts>
        </Property>
        <Property name="Nullable" type="System.String" itemName="IS_NULLABLE">
          <Concepts>
            <Concept name="Nullable">
              <Conversion>
                <Calculate expr="IIF({0}='YES',true,false)" type="System.Boolean"/>
              </Conversion>
            </Concept>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="ProcedureColumns"/>
        </Action>
      </Actions>
    </Type>

    <Type name="StoredProcedureParameter" defaultSort="Schema, StoredProcedure, Ordinal">
      <Concepts>
        <Concept name="StoredProcedureParameter" restrictions="{Catalog},{Schema},{StoredProcedure},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="PROCEDURE_CAT">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="PROCEDURE_SCHEM">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="StoredProcedure" itemName="PROCEDURE_NAME">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="COLUMN_NAME">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="COLUMN_NAME"/>
        <Property name="Ordinal" type="System.Int32" itemName="ORDINAL_POSITION">
          <Concepts>
            <Concept name="Ordinal" />      
          </Concepts>
        </Property>
        <Property name="SystemType" type="System.String" itemName="TYPE_NAME">
          <Concepts>
            <Concept name="ProviderDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="ProviderDbType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
            <Concept name="FrameworkDataType">
              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
            </Concept>
          </Concepts>
        </Property>
        <Property name="Length" type="System.Int32" itemName="LENGTH">
          <Concepts>
            <Concept name="Length"/>
          </Concepts>
        </Property>
        <Property name="Precision" type="System.Int32" itemName="PRECISION">
          <Concepts>
            <Concept name="Precision" />             
          </Concepts>
        </Property>
        <Property name="Scale" type="System.Int32" itemName="SCALE">
          <Concepts>
            <Concept name="Scale"/>
          </Concepts>
        </Property>
        <Property name="Direction" type="System.Int32" itemName="COLUMN_TYPE">
          <Concepts>
            <Concept name="Direction" />
          </Concepts>
        </Property>
        <Property name="Nullable" type="System.String" itemName="IS_NULLABLE">
          <Concepts>          
            <Concept name="Nullable">
              <Conversion>
                <Calculate expr="IIF({0}='YES',true,false)" type="System.Boolean"/>
              </Conversion>
            </Concept>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="ProcedureParameters"/>
        </Action>
      </Actions>
    </Type>

    <!--<Type name="Triggers" defaultSort="Schema,Table,Name">
      <Concepts>
        <Concept name="TableTriggers" restrictions="{Catalog},{Schema},{Table},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_catalog">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schema">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="trigger_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="trigger_name"/>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="Triggers"/>
        </Action>
      </Actions>
    </Type>-->

    <Type name="ForeignKey" defaultSort="Schema,Table,Name">
      <Concepts>
        <Concept name="TableForeignKey" restrictions="{Catalog},{Schema},{Table},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="fktable_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="fktable_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="fktable_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="fk_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="fk_name"/>
        <!--<Property name="ReferencedColumnName" type="System.String" itemName="pkcolumn_name"/>
        <Property name="ColumnName" type="System.String" itemName="fkcolumn_name"/>-->
        <Property name="ReferencedTableDatabase" type="System.String" itemName="pktable_cat">
          <Concepts>
            <Concept name="ReferencedTableId0"/>
          </Concepts>
        </Property>
        <Property name="ReferencedTableSchema" type="System.String" itemName="pktable_schem">
          <Concepts>
            <Concept name="ReferencedTableId1"/>
          </Concepts>
        </Property>
        <Property name="ReferencedTableName" type="System.String" itemName="pktable_name">
          <Concepts>
            <Concept name="ReferencedTableId2"/>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="ForeignKeys"/>
        </Action>
      </Actions>
    </Type>

    <Type name="ForeignKeyColumn" defaultSort="Schema,Table,ForeignKey,Ordinal">
      <Concepts>
        <Concept name="TableForeignKeyColumn" restrictions="{Catalog},{Schema},{Table},{ForeignKey},{Name}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="fktable_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="fktable_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="fktable_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>
        <Part name="ForeignKey" itemName="fk_name">
          <Concepts>
            <Concept name="Identifier3"/>
          </Concepts>
        </Part>
        <Part name="Name" itemName="fkcolumn_name">
          <Concepts>
            <Concept name="Identifier4"/>
          </Concepts>
        </Part>
      </Identifier>
      <Properties>
        <Property name="Name" type="System.String" itemName="fkcolumn_name"/>
        <Property name="Ordinal" type="System.Int32" itemName="key_seq">
          <Concepts>
            <Concept name="Ordinal"/>
          </Concepts>
        </Property>
        <Property name="ReferencedTableDatabase" type="System.String" itemName="pktable_cat">
          <Concepts>
            <Concept name="ReferencedTableId0"/>
          </Concepts>
        </Property>
        <Property name="ReferencedTableSchema" type="System.String" itemName="pktable_schem">
          <Concepts>
            <Concept name="ReferencedTableId1"/>
          </Concepts>
        </Property>
        <Property name="ReferencedTableName" type="System.String" itemName="pktable_name">
          <Concepts>
            <Concept name="ReferencedTableId2"/>
          </Concepts>
        </Property>
        <Property name="ReferencedColumnName" type="System.String" itemName="pkcolumn_name">
          <Concepts>
            <Concept name="ReferencedTableColumn"/>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="ForeignKeyColumns"/>
        </Action>
      </Actions>
    </Type>



    <!--<Type name="PrimaryKey" defaultSort="Schema,Table,Ordinal">
      <Concepts>
        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},{Schema},{Table}"/>
      </Concepts>
      <Identifier>
        <Part name="Catalog" itemName="table_cat">
          <Concepts>
            <Concept name="Identifier0"/>
          </Concepts>
        </Part>
        <Part name="Schema" itemName="table_schem">
          <Concepts>
            <Concept name="Identifier1"/>
          </Concepts>
        </Part>
        <Part name="Table" itemName="table_name">
          <Concepts>
            <Concept name="Identifier2"/>
          </Concepts>
        </Part>       
      </Identifier>
      <Properties>
      
        <Property name="Name" type="System.String" itemName="column_name"/>
        <Property name="Ordinal" type="System.Int16" itemName="key_seq">
          <Concepts>
            <Concept name="Ordinal">
              <Conversion>
                <ChangeType type="System.Int32"/>
              </Conversion>
            </Concept>
          </Concepts>
        </Property>
      </Properties>
      <Actions>
        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          <Parameter value="PrimaryKeys"/>
        </Action>
        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          <Parameter>
            <Parameter value="{2}"/>
            <Parameter value="{1}"/>
            <Parameter value="Table"/>
            <Parameter/>
            <Parameter>
              --><!-- GUID_DSRefProperty_Qualifier --><!--
              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
                <Parameter value="{0}"/>
              </Parameter>
              --><!-- GUID_DSRefProperty_PreciseType --><!--
              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
                <Parameter value="101" type="System.Int32"/>
              --><!-- Table --><!--
              </Parameter>
            </Parameter>
            <Parameter>
              <Parameter>
                <Parameter value="{3}"/>
                <Parameter/>
                <Parameter value="Index"/>
                <Parameter/>
                <Parameter/>
                <Parameter>
                  <Parameter>
                    <Parameter value="{4}"/>
                    <Parameter/>
                    <Parameter value="Field"/>
                  </Parameter>
                </Parameter>
              </Parameter>
            </Parameter>
          </Parameter>
        </Action>
      </Actions>
    </Type>-->

  </Types>
  
</VSDataObjectSupport>

